<script setup>
import { onMounted, onUnmounted } from "vue";
import AMapLoader from "@amap/amap-jsapi-loader";

let map = null;

onMounted(() => {
    window._AMapSecurityConfig = {
        securityJsCode: "cace6cc8f75e66e765bb2d986ac12633",
    };
    AMapLoader.load({
        key: "630bdb48cfd4839b18901663f7673f5c", // 申请好的Web端开发者Key，首次调用 load 时必填
        version: "2.0", // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
        plugins: ["AMap.Scale"], //需要使用的的插件列表，如比例尺'AMap.Scale'，支持添加多个如：['...','...']
    })
        .then((AMap) => {
            //   map = new AMap.Map("container", {
            //     // 设置地图容器id
            //     viewMode: "3D", // 是否为3D地图模式
            //     zoom: 11, // 初始化地图级别
            //     center: [116.397428, 39.90923], // 初始化地图中心点位置
            //   });

            // 创建地图实例
            var map = new AMap.Map("container", {
                zoom: 13,
                center: [116.4, 39.92],
                resizeEnable: true
            });

            // 以 icon URL 的形式创建一个途经点
            var viaMarker = new AMap.Marker({
                position: new AMap.LngLat(116.38, 39.92),
                // 将一张图片的地址设置为 icon
                icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/dir-via-marker.png',
                // 设置了 icon 以后，设置 icon 的偏移量，以 icon 的 [center bottom] 为原点
                offset: new AMap.Pixel(-13, -30)
            });

            var viaMarker1 = new AMap.Marker({
                position: new AMap.LngLat(116.99, 39.92),
                // 将一张图片的地址设置为 icon
                icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/dir-via-marker.png',
                // 设置了 icon 以后，设置 icon 的偏移量，以 icon 的 [center bottom] 为原点
                offset: new AMap.Pixel(-13, -30)
            });

            // 创建一个 Icon
            var startIcon = new AMap.Icon({
                // 图标尺寸
                size: new AMap.Size(25, 34),
                // 图标的取图地址
                image: '//a.amap.com/jsapi_demos/static/demo-center/icons/dir-marker.png',
                // 图标所用图片大小
                imageSize: new AMap.Size(135, 40),
                // 图标取图偏移量
                imageOffset: new AMap.Pixel(-9, -3)
            });

            // 将 icon 传入 marker
            var startMarker = new AMap.Marker({
                position: new AMap.LngLat(116.35, 39.89),
                icon: startIcon,
                offset: new AMap.Pixel(-13, -30)
            });

            // 创建一个 icon
            var endIcon = new AMap.Icon({
                size: new AMap.Size(25, 34),
                image: '//a.amap.com/jsapi_demos/static/demo-center/icons/dir-marker.png',
                imageSize: new AMap.Size(135, 40),
                imageOffset: new AMap.Pixel(-95, -3)
            });

            // 将 icon 传入 marker
            var endMarker = new AMap.Marker({
                position: new AMap.LngLat(116.45, 39.93),
                icon: endIcon,
                offset: new AMap.Pixel(-13, -30)
            });

            // 将 markers 添加到地图
            map.add([viaMarker, viaMarker1, startMarker, endMarker]);
        })
        .catch((e) => {
            console.log(e);
        });
});

onUnmounted(() => {
    map?.destroy();
});
</script>

<template>
    <div id="container"></div>
</template>

<style scoped>
#container {
    width: 100%;
    height: 800px;
}
</style>
